<template>
  <div class="page_root" :key="queryUpdateFlag" data-page-name="平台-模版项目-任务-完成" data-page-identification="t_0qmx2r0fpk">
    <a-spin :spinning="pageLoading.loading" :tip="pageLoading.tip">
      <!-- begin vid_a66h2jgxek 容器_ak0v3kpvfq -->
      <al-box class="vid_a66h2jgxek">
        <!-- begin vid_oupkm1qcq4 布局容器_gkoiaw61if -->
        <a-row class="vid_oupkm1qcq4" :slots="'24'">
          <a-col :span="24">
            <!-- begin vid_qda7xszz78 容器_pa5tx52lro -->
            <al-box class="vid_qda7xszz78">
              <!-- begin vid_sfilmvv65x 审批详情 -->
              <span class="vid_sfilmvv65x"> 审批详情 </span>
              <!-- end vid_sfilmvv65x 审批详情 -->
            </al-box>
            <!-- end vid_qda7xszz78 容器_pa5tx52lro -->
            <!-- begin vid_qizt2lvsqc 容器_fpjjdsfk9k -->
            <al-box class="vid_qizt2lvsqc">
              <!-- begin vid_hte17hl8ou 审批类型： -->
              <span class="vid_hte17hl8ou"> 审批类型： </span>
              <!-- end vid_hte17hl8ou 审批类型： -->
              <!-- begin vid_8ce19j1ydg 提交附件 -->
              <span class="vid_8ce19j1ydg">
                {{ renderStringInTemplate(vid_8ce19j1ydg_props.rt_text) }}
              </span>
              <!-- end vid_8ce19j1ydg 提交附件 -->
            </al-box>
            <!-- end vid_qizt2lvsqc 容器_fpjjdsfk9k -->
            <!-- begin vid_swgipfa9ud 布局容器_fxd6viinel -->
            <a-row class="vid_swgipfa9ud" :gutter="16" :slots="'5:5:5:5:4'">
              <a-col :span="5">
                <!-- begin vid_fh3zdpf5jh 项目名称： -->
                <span class="vid_fh3zdpf5jh"> 项目名称： </span>
                <!-- end vid_fh3zdpf5jh 项目名称： -->
                <!-- begin vid_8o2vce0kw8 这里是项目名称 -->
                <span class="vid_8o2vce0kw8">
                  {{ renderStringInTemplate(vid_8o2vce0kw8_props.rt_text) }}
                </span>
                <!-- end vid_8o2vce0kw8 这里是项目名称 -->
              </a-col>
              <a-col :span="5">
                <!-- begin vid_5os1urclk2 项目阶段： -->
                <span class="vid_5os1urclk2"> 项目阶段： </span>
                <!-- end vid_5os1urclk2 项目阶段： -->
                <!-- begin vid_io6lji4vq4 这里是项目阶段 -->
                <span class="vid_io6lji4vq4">
                  {{ renderStringInTemplate(vid_io6lji4vq4_props.rt_text) }}
                </span>
                <!-- end vid_io6lji4vq4 这里是项目阶段 -->
              </a-col>
              <a-col :span="5">
                <!-- begin vid_9phccf43uc 任务名称： -->
                <span class="vid_9phccf43uc"> 任务名称： </span>
                <!-- end vid_9phccf43uc 任务名称： -->
                <!-- begin vid_b6yjigkl3q 这里是任务名称 -->
                <span class="vid_b6yjigkl3q">
                  {{ renderStringInTemplate(vid_b6yjigkl3q_props.rt_text) }}
                </span>
                <!-- end vid_b6yjigkl3q 这里是任务名称 -->
              </a-col>
              <a-col :span="5">
                <!-- begin vid_wj1z733z1h 任务状态： -->
                <span class="vid_wj1z733z1h"> 任务状态： </span>
                <!-- end vid_wj1z733z1h 任务状态： -->
                <!-- begin vid_qp4k4d9gl3 未启动 -->
                <span class="vid_qp4k4d9gl3">
                  {{ renderStringInTemplate(vid_qp4k4d9gl3_props.rt_text) }}
                </span>
                <!-- end vid_qp4k4d9gl3 未启动 -->
              </a-col>
              <a-col :span="4">
                <!-- begin vid_0xmbkzz7lf 计划工时： -->
                <span class="vid_0xmbkzz7lf"> 计划工时： </span>
                <!-- end vid_0xmbkzz7lf 计划工时： -->
                <!-- begin vid_sncshfitvt 高 -->
                <span class="vid_sncshfitvt">
                  {{ renderStringInTemplate(vid_sncshfitvt_props.rt_text) }}
                </span>
                <!-- end vid_sncshfitvt 高 -->
              </a-col>
            </a-row>
            <!-- end vid_swgipfa9ud 布局容器_fxd6viinel -->
            <!-- begin vid_t5b3zh1n4x 布局容器_b4awiu8hqk -->
            <a-row class="vid_t5b3zh1n4x" :gutter="16" :slots="'5:5:5:5:4'">
              <a-col :span="5">
                <!-- begin vid_sj8nxor7sy 实际工时： -->
                <span class="vid_sj8nxor7sy"> 实际工时： </span>
                <!-- end vid_sj8nxor7sy 实际工时： -->
                <!-- begin vid_hp95j8xrxn 文本 -->
                <span class="vid_hp95j8xrxn">
                  {{ renderStringInTemplate(vid_hp95j8xrxn_props.rt_text) }}
                </span>
                <!-- end vid_hp95j8xrxn 文本 -->
              </a-col>
              <a-col :span="5">
                <!-- begin vid_2rnqzoay9v 工时投入状态： -->
                <span class="vid_2rnqzoay9v"> 工时投入状态： </span>
                <!-- end vid_2rnqzoay9v 工时投入状态： -->
                <!-- begin vid_p0hyrkkmw7 26 -->
                <span class="vid_p0hyrkkmw7">
                  {{ renderStringInTemplate(vid_p0hyrkkmw7_props.rt_text) }}
                </span>
                <!-- end vid_p0hyrkkmw7 26 -->
              </a-col>
              <a-col :span="5">
                <!-- begin vid_o3idmba92f 任务负责人： -->
                <span class="vid_o3idmba92f"> 任务负责人： </span>
                <!-- end vid_o3idmba92f 任务负责人： -->
                <!-- begin vid_urjvtoj54u 28 -->
                <span class="vid_urjvtoj54u">
                  {{ renderStringInTemplate(vid_urjvtoj54u_props.rt_text) }}
                </span>
                <!-- end vid_urjvtoj54u 28 -->
              </a-col>
              <a-col :span="5">
                <!-- begin vid_l1wbm8mstf 审核员： -->
                <span class="vid_l1wbm8mstf"> 审核员： </span>
                <!-- end vid_l1wbm8mstf 审核员： -->
                <!-- begin vid_sv3wlynl7n 超出 -->
                <span class="vid_sv3wlynl7n">
                  {{ renderStringInTemplate(vid_sv3wlynl7n_props.rt_text) }}
                </span>
                <!-- end vid_sv3wlynl7n 超出 -->
              </a-col>
              <a-col :span="4">
                <!-- begin vid_d4ediuy0j8 任务执行人： -->
                <span class="vid_d4ediuy0j8"> 任务执行人： </span>
                <!-- end vid_d4ediuy0j8 任务执行人： -->
                <!-- begin vid_pazokhx20e 张珊珊 -->
                <span class="vid_pazokhx20e">
                  {{ renderStringInTemplate(vid_pazokhx20e_props.rt_text) }}
                </span>
                <!-- end vid_pazokhx20e 张珊珊 -->
              </a-col>
            </a-row>
            <!-- end vid_t5b3zh1n4x 布局容器_b4awiu8hqk -->
            <!-- begin vid_id98z1hjm5 布局容器_roptade6jz -->
            <a-row class="vid_id98z1hjm5" :gutter="16" :slots="'5:5:5:5:4'">
              <a-col :span="5">
                <!-- begin vid_9reh8war19 计划开始时间： -->
                <span class="vid_9reh8war19"> 计划开始时间： </span>
                <!-- end vid_9reh8war19 计划开始时间： -->
                <!-- begin vid_whsekrxwsy 张珊珊 -->
                <span class="vid_whsekrxwsy">
                  {{ renderStringInTemplate(vid_whsekrxwsy_props.rt_text) }}
                </span>
                <!-- end vid_whsekrxwsy 张珊珊 -->
              </a-col>
              <a-col :span="5">
                <!-- begin vid_3qjk3jsjdp 实际开始时间： -->
                <span class="vid_3qjk3jsjdp"> 实际开始时间： </span>
                <!-- end vid_3qjk3jsjdp 实际开始时间： -->
                <!-- begin vid_vonhq9nbvm 好多人 -->
                <span class="vid_vonhq9nbvm">
                  {{ renderStringInTemplate(vid_vonhq9nbvm_props.rt_text) }}
                </span>
                <!-- end vid_vonhq9nbvm 好多人 -->
              </a-col>
              <a-col :span="5">
                <!-- begin vid_546l4nr3qa 计划结束时间： -->
                <span class="vid_546l4nr3qa"> 计划结束时间： </span>
                <!-- end vid_546l4nr3qa 计划结束时间： -->
                <!-- begin vid_gz4ovawl99 01-12 -->
                <span class="vid_gz4ovawl99">
                  {{ renderStringInTemplate(vid_gz4ovawl99_props.rt_text) }}
                </span>
                <!-- end vid_gz4ovawl99 01-12 -->
              </a-col>
              <a-col :span="5">
                <!-- begin vid_2anx5uk0fb 提交人： -->
                <span class="vid_2anx5uk0fb"> 提交人： </span>
                <!-- end vid_2anx5uk0fb 提交人： -->
                <!-- begin vid_ss7wuj4d4s 01-13 -->
                <span class="vid_ss7wuj4d4s">
                  {{ renderStringInTemplate(vid_ss7wuj4d4s_props.rt_text) }}
                </span>
                <!-- end vid_ss7wuj4d4s 01-13 -->
              </a-col>
              <a-col :span="4">
                <!-- begin vid_pl7jx4wdr4 提交时间： -->
                <span class="vid_pl7jx4wdr4"> 提交时间： </span>
                <!-- end vid_pl7jx4wdr4 提交时间： -->
                <!-- begin vid_4yzl296aw0 简单文本_e4719q3gr8 -->
                <span class="vid_4yzl296aw0">
                  {{ renderStringInTemplate(vid_4yzl296aw0_props.rt_text) }}
                </span>
                <!-- end vid_4yzl296aw0 简单文本_e4719q3gr8 -->
              </a-col>
            </a-row>
            <!-- end vid_id98z1hjm5 布局容器_roptade6jz -->
          </a-col>
        </a-row>
        <!-- end vid_oupkm1qcq4 布局容器_gkoiaw61if -->
        <!-- begin vid_5amjfig1pl 布局容器_2ktap9jkm3 -->
        <a-row class="vid_5amjfig1pl" :gutter="16" :slots="'16:8'">
          <a-col :span="16">
            <!-- begin vid_b1hp2z2pjq 容器_y707i3cyjw -->
            <al-box class="vid_b1hp2z2pjq">
              <!-- begin vid_6k45k29qc4 容器_w4czfgbcbq -->
              <al-box class="vid_6k45k29qc4">
                <!-- begin vid_kgvx07500o 简单文本_4ewu6hf9xo -->
                <span class="vid_kgvx07500o"> 检查项详情 </span>
                <!-- end vid_kgvx07500o 简单文本_4ewu6hf9xo -->
              </al-box>
              <!-- end vid_6k45k29qc4 容器_w4czfgbcbq -->
              <!-- begin vid_anayzmd7k5 容器_d43ewwrt2r -->
              <al-box class="vid_anayzmd7k5">
                <!-- begin vid_p08ykh206w 表单容器_b4iyth18wj -->
                <a-form class="vid_p08ykh206w" :model="q_iaed61pve1" :formModel="vid_p08ykh206w_props.formModel">
                  <!-- begin vid_plvu6gqeyc 布局容器_ue71o0b6b6 -->
                  <a-row class="vid_plvu6gqeyc" :gutter="16" :slots="'12:12'">
                    <a-col :span="12">
                      <!-- begin vid_ehoh8pt2lb 容器_zf5hehbv7i -->
                      <al-box class="vid_ehoh8pt2lb">
                        <!-- begin vid_6rwtheqpnk 表单项容器_elmexxig9y -->
                        <a-form-item name="n_ugem3gk4wu" :rules="q_iaed61pve1_rules[`n_ugem3gk4wu`]" class="vid_6rwtheqpnk" :label-col='{"span":24}' :wrapper-col='{"span":24}'>
                          <!-- begin vid_ev78jrivs2 容器_mlmyzid4sc -->
                          <al-box class="vid_ev78jrivs2">
                            <!-- begin vid_6o7ft9gcxr 复选框组_tx35eysktf -->
                            <a-checkbox-group
                              class="vid_6o7ft9gcxr"
                              v-model:value="q_iaed61pve1.n_ugem3gk4wu"
                              :disabled="true"
                              :selected="vid_6o7ft9gcxr_props.selected"
                              :options="vid_6o7ft9gcxr_options()"
                              @change="handle_vid_6o7ft9gcxr_change"
                            >
                            </a-checkbox-group>
                            <!-- end vid_6o7ft9gcxr 复选框组_tx35eysktf -->
                          </al-box>
                          <!-- end vid_ev78jrivs2 容器_mlmyzid4sc -->
                          <template #label>
                            <!-- begin vid_asrcjumn8g 容器_np7vnf4skh -->
                            <al-box class="vid_asrcjumn8g">
                              <!-- begin vid_dgd23jscdw 按钮_1xpwwlciin -->
                              <a-button class="vid_dgd23jscdw" :size="'small'" :type="'text'">
                                <template #icon><issues-close-outlined /></template>
                              </a-button>
                              <!-- end vid_dgd23jscdw 按钮_1xpwwlciin -->
                              <!-- begin vid_shrfl8uqye 审核标准 -->
                              <span class="vid_shrfl8uqye"> 审核标准 </span>
                              <!-- end vid_shrfl8uqye 审核标准 -->
                            </al-box>
                            <!-- end vid_asrcjumn8g 容器_np7vnf4skh -->
                          </template>
                        </a-form-item>
                        <!-- end vid_6rwtheqpnk 表单项容器_elmexxig9y -->
                      </al-box>
                      <!-- end vid_ehoh8pt2lb 容器_zf5hehbv7i -->
                    </a-col>
                    <a-col :span="12">
                      <!-- begin vid_mq9f1g648m 容器_odwk2i5fm2 -->
                      <al-box class="vid_mq9f1g648m">
                        <!-- begin vid_vutt5on3s9 表单项容器_h7sciziivy -->
                        <a-form-item name="z_smqd6ov9cq" :rules="q_iaed61pve1_rules[`z_smqd6ov9cq`]" class="vid_vutt5on3s9" :label-col='{"span":24}' :wrapper-col='{"span":24}'>
                          <!-- begin vid_jgijrn8hb5 容器_duk84v410q -->
                          <al-box class="vid_jgijrn8hb5">
                            <!-- begin vid_h3noefhyqx 复选框组_96an3mm9rf -->
                            <a-checkbox-group
                              class="vid_h3noefhyqx"
                              v-model:value="q_iaed61pve1.z_smqd6ov9cq"
                              :disabled="true"
                              :selected="vid_h3noefhyqx_props.selected"
                              :options="vid_h3noefhyqx_options()"
                              @change="handle_vid_h3noefhyqx_change"
                            >
                            </a-checkbox-group>
                            <!-- end vid_h3noefhyqx 复选框组_96an3mm9rf -->
                          </al-box>
                          <!-- end vid_jgijrn8hb5 容器_duk84v410q -->
                          <template #label>
                            <!-- begin vid_30pa4jvpiw 容器_w2uml0a69z -->
                            <al-box class="vid_30pa4jvpiw">
                              <!-- begin vid_t13sdk1z88 按钮_6jd6a8q9wx -->
                              <a-button class="vid_t13sdk1z88" :size="'small'" :type="'text'">
                                <template #icon><branches-outlined /></template>
                              </a-button>
                              <!-- end vid_t13sdk1z88 按钮_6jd6a8q9wx -->
                              <!-- begin vid_jsqzlgxfsi SOP -->
                              <span class="vid_jsqzlgxfsi"> SOP </span>
                              <!-- end vid_jsqzlgxfsi SOP -->
                            </al-box>
                            <!-- end vid_30pa4jvpiw 容器_w2uml0a69z -->
                          </template>
                        </a-form-item>
                        <!-- end vid_vutt5on3s9 表单项容器_h7sciziivy -->
                      </al-box>
                      <!-- end vid_mq9f1g648m 容器_odwk2i5fm2 -->
                    </a-col>
                  </a-row>
                  <!-- end vid_plvu6gqeyc 布局容器_ue71o0b6b6 -->
                </a-form>
                <!-- end vid_p08ykh206w 表单容器_b4iyth18wj -->
              </al-box>
              <!-- end vid_anayzmd7k5 容器_d43ewwrt2r -->
            </al-box>
            <!-- end vid_b1hp2z2pjq 容器_y707i3cyjw -->
          </a-col>
          <a-col :span="8">
            <!-- begin vid_z5ekmc27yn 容器_qbw2d9idic -->
            <al-box class="vid_z5ekmc27yn">
              <!-- begin vid_kek9mcs93b 容器_xt24tajwnp -->
              <al-box class="vid_kek9mcs93b">
                <!-- begin vid_9zmzkacds0 布局容器_empkgxpkol -->
                <a-row class="vid_9zmzkacds0" :slots="'12:12'">
                  <a-col :span="12">
                    <!-- begin vid_fty1g7gff7 任务附件 -->
                    <span class="vid_fty1g7gff7"> 任务附件 </span>
                    <!-- end vid_fty1g7gff7 任务附件 -->
                  </a-col>
                  <a-col :span="12">
                    <!-- begin vid_4vqhgo7ygs 容器_06szf5277s -->
                    <al-box class="vid_4vqhgo7ygs">
                      <!-- begin vid_jr9d1p1jg7 附件模版下载 -->
                      <a-button class="vid_jr9d1p1jg7" :type="'primary'" @click="handle_vid_jr9d1p1jg7_click">
                        <template #icon><download-outlined /></template>

                        附件模版下载
                      </a-button>
                      <!-- end vid_jr9d1p1jg7 附件模版下载 -->
                    </al-box>
                    <!-- end vid_4vqhgo7ygs 容器_06szf5277s -->
                  </a-col>
                </a-row>
                <!-- end vid_9zmzkacds0 布局容器_empkgxpkol -->
                <!-- begin vid_qa53gc55by 容器_oydpzmh7vg -->
                <al-box class="vid_qa53gc55by">
                  <!-- begin vid_i0r6qe6rvx 自定义模板_jqzyvlgmbz -->
                  <!--                  预览-->
                  <a-modal v-model:visible="stateF.previewVisible" @cancel="handleCancel" width="1000px" title="图片预览" :footer="null">
                    <div v-if="stateF.isImagePreview">
                      <img :src="stateF.previewImage" alt="附件" style="width: 100%" />
                    </div>
                    <div v-else>
                      <iframe :src="stateF.previewFileUrl" style="width: 100%; height: 500px"></iframe>
                    </div>
                  </a-modal>
                  <!--                  预览-->
                  <div class="file-main">
                    <div v-for="(item, index) in ppmEnclosureInfoList" :key="index" class="file-item">
                      <a-tooltip placement="top" :overlayStyle="standardStyle" color="#fff">
                        <template #title>
                          <p style="color: #262626; margin: 0">{{ item.name }} {{ text }}</p>
                        </template>
                        <div class="file-name">{{ item.name }}</div>
                      </a-tooltip>
                      <a-button :disabled="!item.type.startsWith('image')" type="link" @click="previewAttachment(item)">预览</a-button>
                      <a-button type="link" @click="handlerDownload(item)">下载</a-button>
                    </div>
                  </div>
                  <!-- end vid_i0r6qe6rvx 自定义模板_jqzyvlgmbz -->
                </al-box>
                <!-- end vid_qa53gc55by 容器_oydpzmh7vg -->
              </al-box>
              <!-- end vid_kek9mcs93b 容器_xt24tajwnp -->
            </al-box>
            <!-- end vid_z5ekmc27yn 容器_qbw2d9idic -->
          </a-col>
        </a-row>
        <!-- end vid_5amjfig1pl 布局容器_2ktap9jkm3 -->
      </al-box>
      <!-- end vid_a66h2jgxek 容器_ak0v3kpvfq -->
    </a-spin>
  </div>
</template>
<script setup lang="tsx">
  import {
      h, ref, reactive, toRaw, markRaw, watch, computed,
      onBeforeMount, onMounted, onBeforeUnmount, onUnmounted, onActivated, onDeactivated
    } from "vue";
    import { useRoute, useRouter } from 'vue-router';
    const router = useRouter();
    const route = useRoute();
    import { get, post, put, del, request, requestWithHeaders } from '@/utils/http/Axios';
    import { cloneDeep, localGet, merge, getDifferenceArray, traversalTreeStructure, checkCaseCondition, renderStringInTemplate, handleBreadcrumbJump, throttle, permission, getComponentParamsValue } from '@/utils/index';
    import { isNullOrEmpty, isEmptyArr, isNullOrUnDef, isContained, isArray, isEmpty, isObject } from '@/utils/is';
    import dayjs from 'dayjs';
    import { getPagePcChartsDataSourceConvert } from '@/utils/chart';
    import { message, notification, Modal } from 'ant-design-vue'
    import { propertyFormatByNumber, propertyFormatByPercentage, propertyFormatByDate, parseSubFromDataList } from '@/utils/format';
    import colorTheme from '@/design/custom-theme.json';
    
    import UserTableRecords from '@/model/UserTableRecords';
    import { getAppBaseUrl } from '@/utils/index';
    import { sendToken } from "@/hooks/useIframeToken";
    import { useSystemStore } from "@/store/modules/system";
    const systemStore = useSystemStore();
    



      // 获取传入的流程ID和组件参数
      const props = defineProps({
            'processInstanceId': {
            type: [String,Number,Boolean],
            default: undefined,
        },
      })
      const immediateWatch = (source, callback) => {
        watch(source, callback, {deep: true,immediate: true })
      }



  /* -------------------------- 属性定义 -------------------------- */

      const setTimeOutList = [];
      const pageLoading = reactive({
        loading: false,
        tip: undefined
      });
      const authInfo = localGet('app-user-store');

    const vid_8ce19j1ydg_props = reactive({
          rt_text: undefined,
  })

    const vid_8o2vce0kw8_props = reactive({
          rt_text: undefined,
  })

    const vid_io6lji4vq4_props = reactive({
          rt_text: undefined,
  })

    const vid_b6yjigkl3q_props = reactive({
          rt_text: undefined,
  })

    const vid_qp4k4d9gl3_props = reactive({
          rt_text: undefined,
  })

    const vid_sncshfitvt_props = reactive({
          rt_text: undefined,
  })

    const vid_hp95j8xrxn_props = reactive({
          rt_text: undefined,
  })

    const vid_p0hyrkkmw7_props = reactive({
          rt_text: undefined,
  })

    const vid_urjvtoj54u_props = reactive({
          rt_text: undefined,
  })

    const vid_sv3wlynl7n_props = reactive({
          rt_text: undefined,
  })

    const vid_pazokhx20e_props = reactive({
          rt_text: undefined,
  })

    const vid_whsekrxwsy_props = reactive({
          rt_text: undefined,
  })

    const vid_vonhq9nbvm_props = reactive({
          rt_text: undefined,
  })

    const vid_gz4ovawl99_props = reactive({
          rt_text: undefined,
  })

    const vid_ss7wuj4d4s_props = reactive({
          rt_text: undefined,
  })

    const vid_4yzl296aw0_props = reactive({
          rt_text: undefined,
  })

    const vid_p08ykh206w_props = reactive({
          formModel: {"n_ugem3gk4wu":"","z_smqd6ov9cq":[]},
  })

    const vid_6o7ft9gcxr_props = reactive({
          selected: {"option":[],"value":[],"label":[]},
      value: undefined,
  })

    const vid_h3noefhyqx_props = reactive({
          selected: {"option":[],"value":[],"label":[]},
      value: [],
  })
  // ---------------------------- 定义模型数据 ----------------------------

    const q_iaed61pve1 = reactive({"z_smqd6ov9cq":[]})

    // ============================ 定义模型数据 ============================


    const q_iaed61pve1_rules = reactive({


    })


      // 处理校验
      const setSubFormName =(parentInfo, name)=>{
        return [parentInfo.parents, parentInfo.cycleIndex, name];
      }


    const vid_6o7ft9gcxr_options_raw = ref([])

      const vid_6o7ft9gcxr_options = computed(() => {
        return (dataSource = vid_6o7ft9gcxr_options_raw.value)=>{
          return (dataSource || []).map(item => {
            return {
              ...item,
              value: item.id,
          label: item.content,
          disabled: !!item.disabled
            }
          })
        }
      })



    const vid_h3noefhyqx_options_raw = ref([])

      const vid_h3noefhyqx_options = computed(() => {
        return (dataSource = vid_h3noefhyqx_options_raw.value)=>{
          return (dataSource || []).map(item => {
            return {
              ...item,
              value: item.id,
          label: item.content,
          disabled: !!item.disabled
            }
          })
        }
      })

  // 图表组件 复选框组_tx35eysktf 条件格式数据依赖
  const vid_6o7ft9gcxr_chartConditionDependencyMap = ref({
  })
  // 图表组件 复选框组_96an3mm9rf 条件格式数据依赖
  const vid_h3noefhyqx_chartConditionDependencyMap = ref({
  })
  /* ========================== 属性定义 ========================== */


  /* -------------------------- 元素数据引用 -------------------------- */


  /* ========================== 元素数据引用 ========================== */


  /* -------------------------- 页面数据 -------------------------- */

    // 页面数据 审批详情
    const dataConnector_conn_m45gnsk0hr_response = ref();
    const dataConnector_conn_m45gnsk0hr = async (additionParams = {}) => {
        const exec = async () => {
          // 获取参数
          const params = {

          };

          // 注入附加的参数
          try {
            merge(params, additionParams);
          } catch (error) {
            console.log(error)
          }

          // 判断加载提示

          // 处理URL
          let url = '/solution-ppm/api/v2/built-in-system-ppm/changeRecord/{instanceId}';
          // 替换url中的变量
          url = url.replace('{instanceId}', String(pageParameter_state.processInstanceId))
          // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
          Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
          return get(url, params, {
                headers: undefined
              }).then(async (resp) => {
            dataConnector_conn_m45gnsk0hr_response.value = resp;

            return resp;
          }).catch(async (e) => {


            return Promise.reject(e);
          }).finally(async () => {


          })
        }

          return await exec()

    }


    // 页面数据 完成任务审批详情
    const dataConnector_conn_rtucp29zln_response = ref();
    const dataConnector_conn_rtucp29zln = async (additionParams = {}) => {
        const exec = async () => {
          // 获取参数
          const params = {

          };

          // 注入附加的参数
          try {
            merge(params, additionParams);
          } catch (error) {
            console.log(error)
          }

          // 判断加载提示

          // 处理URL
          let url = '/solution-ppm/api/v2/built-in-system-ppm/changeRecord/task/{instanceId}';
          // 替换url中的变量
          url = url.replace('{instanceId}', String(pageParameter_state.processInstanceId))
          // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
          Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
          return get(url, params, {
                headers: undefined
              }).then(async (resp) => {
            dataConnector_conn_rtucp29zln_response.value = resp;

            return resp;
          }).catch(async (e) => {


            return Promise.reject(e);
          }).finally(async () => {


          })
        }

          return await exec()

    }


    // 页面数据 任务审批详情中的任务风险分页
    const dataConnector_conn_trnrlsqdxj_response = ref();
    const dataConnector_conn_trnrlsqdxj = async (additionParams = {}) => {
        const exec = async () => {
          // 获取参数
          const params = {
            instanceId: pageParameter_state.processInstanceId,
          pageNo: vid_wqw4lh888w_props?.rt_tableConfig.pagination.current,
          pageSize: vid_wqw4lh888w_props?.rt_tableConfig.pagination.pageSize
          };

          // 注入附加的参数
          try {
            merge(params, additionParams);
          } catch (error) {
            console.log(error)
          }

          // 判断加载提示

          // 处理URL
          let url = '/solution-ppm/api/v2/built-in-system-ppm/changeRecord/taskRisk/list';
          // 替换url中的变量

          // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
          Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
          return post(url, params, {
                headers: undefined
              }).then(async (resp) => {
            dataConnector_conn_trnrlsqdxj_response.value = resp;

            return resp;
          }).catch(async (e) => {


            return Promise.reject(e);
          }).finally(async () => {


          })
        }

          return await exec()

    }


    // 页面数据 查询标准信息完成标准
    const dataConnector_conn_80alhkvp89_response = ref();
    const dataConnector_conn_80alhkvp89 = async (additionParams = {}) => {
        const exec = async () => {
          // 获取参数
          const params = {
            type: '完成标准'
          };

          // 注入附加的参数
          try {
            merge(params, additionParams);
          } catch (error) {
            console.log(error)
          }

          // 判断加载提示

          // 处理URL
          let url = '/solution-ppm/api/v2/built-in-system-ppm/changeRecord/{instanceId}/standard_info';
          // 替换url中的变量
          url = url.replace('{instanceId}', String(pageParameter_state.processInstanceId))
          // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
          Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
          return post(url, params, {
                headers: undefined
              }).then(async (resp) => {
            dataConnector_conn_80alhkvp89_response.value = resp;

            return resp;
          }).catch(async (e) => {


            return Promise.reject(e);
          }).finally(async () => {


          })
        }

          return await exec()

    }


    // 页面数据 查询标准信息审核标准
    const dataConnector_conn_qqfu8de3jn_response = ref();
    const dataConnector_conn_qqfu8de3jn = async (additionParams = {}) => {
        const exec = async () => {
          // 获取参数
          const params = {
            type: '审核标准'
          };

          // 注入附加的参数
          try {
            merge(params, additionParams);
          } catch (error) {
            console.log(error)
          }

          // 判断加载提示

          // 处理URL
          let url = '/solution-ppm/api/v2/built-in-system-ppm/changeRecord/{instanceId}/standard_info';
          // 替换url中的变量
          url = url.replace('{instanceId}', String(pageParameter_state.processInstanceId))
          // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
          Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
          return post(url, params, {
                headers: undefined
              }).then(async (resp) => {
            dataConnector_conn_qqfu8de3jn_response.value = resp;

            return resp;
          }).catch(async (e) => {


            return Promise.reject(e);
          }).finally(async () => {


          })
        }

          return await exec()

    }


    // 页面数据 查询标准信息审批标准及注意事项
    const dataConnector_conn_35sdq6sf6y_response = ref();
    const dataConnector_conn_35sdq6sf6y = async (additionParams = {}) => {
        const exec = async () => {
          // 获取参数
          const params = {
            type: null
          };

          // 注入附加的参数
          try {
            merge(params, additionParams);
          } catch (error) {
            console.log(error)
          }

          // 判断加载提示

          // 处理URL
          let url = '/solution-ppm/api/v2/built-in-system-ppm/changeRecord/{instanceId}/standard_info';
          // 替换url中的变量
          url = url.replace('{instanceId}', String(pageParameter_state.processInstanceId))
          // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
          Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
          return post(url, params, {
                headers: undefined
              }).then(async (resp) => {
            dataConnector_conn_35sdq6sf6y_response.value = resp;

            return resp;
          }).catch(async (e) => {


            return Promise.reject(e);
          }).finally(async () => {


          })
        }

          return await exec()

    }


    // 页面数据 查询标准信息(sop)
    const dataConnector_conn_xaeuhbh32o_response = ref();
    const dataConnector_conn_xaeuhbh32o = async (additionParams = {}) => {
        const exec = async () => {
          // 获取参数
          const params = {
            type: 'sop'
          };

          // 注入附加的参数
          try {
            merge(params, additionParams);
          } catch (error) {
            console.log(error)
          }

          // 判断加载提示

          // 处理URL
          let url = '/solution-ppm/api/v2/built-in-system-ppm/changeRecord/{instanceId}/standard_info';
          // 替换url中的变量
          url = url.replace('{instanceId}', String(pageParameter_state.processInstanceId))
          // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
          Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
          return post(url, params, {
                headers: undefined
              }).then(async (resp) => {
            dataConnector_conn_xaeuhbh32o_response.value = resp;

            return resp;
          }).catch(async (e) => {


            return Promise.reject(e);
          }).finally(async () => {


          })
        }

          return await exec()

    }


  /* ========================== 页面数据 ========================== */



  /* -------------------------- 响应 -------------------------- */

  /* ========================== 响应 ========================== */


  /* -------------------------- 函数 -------------------------- */

    // 自定义函数 附件模板
    const customFunction_ps8mcf2cw5 =  (params) => {
      downLoadTemplate()
    }

  /* ========================== 函数 ========================== */


  /* -------------------------- 页面参数 -------------------------- */

    const pageParameter_state = reactive({
        'processInstanceId': props.processInstanceId ?? route.query.processInstanceId,
    })

  /* ========================== 页面参数 ========================== */


  /* -------------------------- 组件事件处理方法 -------------------------- */

    // ---------------------------- 组件数据同步 ----------------------------
    // 处理 提交附件 的 rt_text 属性关联
  watch(() => dataConnector_conn_rtucp29zln_response?.value?.data?.approvalType,
    () => {
      let dataList = dataConnector_conn_rtucp29zln_response?.value?.data?.approvalType

      vid_8ce19j1ydg_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 这里是项目名称 的 rt_text 属性关联
  watch(() => dataConnector_conn_m45gnsk0hr_response?.value?.data?.projectName,
    () => {
      let dataList = dataConnector_conn_m45gnsk0hr_response?.value?.data?.projectName

      vid_8o2vce0kw8_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 这里是项目阶段 的 rt_text 属性关联
  watch(() => dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.milepostName,
    () => {
      let dataList = dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.milepostName

      vid_io6lji4vq4_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 这里是任务名称 的 rt_text 属性关联
  watch(() => dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.taskName,
    () => {
      let dataList = dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.taskName

      vid_b6yjigkl3q_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 未启动 的 rt_text 属性关联
  watch(() => dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.taskStatus,
    () => {
      let dataList = dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.taskStatus

      vid_qp4k4d9gl3_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 高 的 rt_text 属性关联
  watch(() => dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.workingHours,
    () => {
      let dataList = dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.workingHours

      vid_sncshfitvt_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 文本 的 rt_text 属性关联
  watch(() => dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.actualWorkHours,
    () => {
      let dataList = dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.actualWorkHours

      vid_hp95j8xrxn_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 26 的 rt_text 属性关联
  watch(() => dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.stateInput,
    () => {
      let dataList = dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.stateInput

      vid_p0hyrkkmw7_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 28 的 rt_text 属性关联
  watch(() => dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.taskOwner,
    () => {
      let dataList = dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.taskOwner

      vid_urjvtoj54u_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 超出 的 rt_text 属性关联
  watch(() => dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.assessorName,
    () => {
      let dataList = dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.assessorName

      vid_sv3wlynl7n_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 张珊珊 的 rt_text 属性关联
  watch(() => dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.taskParticipantStr,
    () => {
      let dataList = dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.taskParticipantStr

      vid_pazokhx20e_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 张珊珊 的 rt_text 属性关联
  watch(() => dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.startTime,
    () => {
      let dataList = dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.startTime

      vid_whsekrxwsy_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 好多人 的 rt_text 属性关联
  watch(() => dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.actualStarTime,
    () => {
      let dataList = dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.actualStarTime

      vid_vonhq9nbvm_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 01-12 的 rt_text 属性关联
  watch(() => dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.endTime,
    () => {
      let dataList = dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.endTime

      vid_gz4ovawl99_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 01-13 的 rt_text 属性关联
  watch(() => dataConnector_conn_rtucp29zln_response?.value?.data?.submitter,
    () => {
      let dataList = dataConnector_conn_rtucp29zln_response?.value?.data?.submitter

      vid_ss7wuj4d4s_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 简单文本_e4719q3gr8 的 rt_text 属性关联
  watch(() => dataConnector_conn_rtucp29zln_response?.value?.data?.submitterTime,
    () => {
      let dataList = dataConnector_conn_rtucp29zln_response?.value?.data?.submitterTime

      vid_4yzl296aw0_props.rt_text = dataList;
    },
    {deep: true})
  // 处理 复选框组_tx35eysktf 的 systemList 属性关联
  watch(() => dataConnector_conn_35sdq6sf6y_response?.value?.data,
    () => {
      let dataList = dataConnector_conn_35sdq6sf6y_response?.value?.data

      vid_6o7ft9gcxr_options_raw.value = dataList;
    },
    {deep: true})
  // 处理 复选框组_96an3mm9rf 的 systemList 属性关联
  watch(() => dataConnector_conn_xaeuhbh32o_response?.value?.data,
    () => {
      let dataList = dataConnector_conn_xaeuhbh32o_response?.value?.data

      vid_h3noefhyqx_options_raw.value = dataList;
    },
    {deep: true})
    // ============================ 组件数据同步 ============================

  /**
  * 处理元素 复选框组 的 change 事件
  */
  let handle_vid_6o7ft9gcxr_change = throttle(async (...params) => {
  const [checkedValue] = params;
  vid_6o7ft9gcxr_props.selected.label = checkedValue.map((val) => vid_6o7ft9gcxr_options.value().find(item => item.value === val).label);
  vid_6o7ft9gcxr_props.selected.value = checkedValue;
  vid_6o7ft9gcxr_props.selected.option = checkedValue.map((val) => vid_6o7ft9gcxr_options.value().find(item => item.value === val));
  }, 500)
  /**
  * 处理元素 复选框组 的 change 事件
  */
  let handle_vid_h3noefhyqx_change = throttle(async (...params) => {
  const [checkedValue] = params;
  vid_h3noefhyqx_props.selected.label = checkedValue.map((val) => vid_h3noefhyqx_options.value().find(item => item.value === val).label);
  vid_h3noefhyqx_props.selected.value = checkedValue;
  vid_h3noefhyqx_props.selected.option = checkedValue.map((val) => vid_h3noefhyqx_options.value().find(item => item.value === val));
  }, 500)
  /**
  * 处理元素 按钮 的 click 事件
  */
  let handle_vid_jr9d1p1jg7_click = throttle(async (...params) => {
  customFunction_ps8mcf2cw5();
  }, 500)
  /* ========================== 组件事件处理方法 ========================== */


  /* -------------------------- 生命周期 -------------------------- */
  // 用于参数变更后重新执行自定义指令
      const queryUpdateFlag = ref(0);
      onMounted(() => { ;dataConnector_conn_m45gnsk0hr()
  dataConnector_conn_rtucp29zln()
  dataConnector_conn_trnrlsqdxj()
  dataConnector_conn_80alhkvp89()
  dataConnector_conn_35sdq6sf6y()
  dataConnector_conn_xaeuhbh32o()

    });

    onUnmounted(() => {
      // 销毁定时器
      setTimeOutList.forEach(({ repeat, timer }) => {
        repeat ?  clearInterval(timer): clearTimeout(timer);
      });
    });

  /* ========================== 生命周期 ========================== */


  /* -------------------------- 数据关联处理 -------------------------- */





  /* -------------------------- 表单数据同步 -------------------------- */
  /* ========================== 表单数据同步 ========================== */

  /* ========================== 数据关联处理 ========================== */


  /* -------------------------- 不同组件自定义的处理逻辑 -------------------------- */

  /* ========================== 不同组件自定义的处理逻辑 ========================== */


  // ================================定制化逻辑========================================
  // 完成标准选中赋值
  watch(() => dataConnector_conn_80alhkvp89_response?.value?.data,
    () => {
      q_iaed61pve1.z_vnusptgo4k = [];
      dataConnector_conn_80alhkvp89_response?.value?.data.map(item => {
        if (item.selected) {
          q_iaed61pve1.z_vnusptgo4k.push(item.id)
        }
      });
    },
    {deep: true})


  // 审核标准选中赋值
  watch(() => dataConnector_conn_qqfu8de3jn_response?.value?.data,
    () => {
      q_iaed61pve1.u_ioa0puvetx = [];
      dataConnector_conn_qqfu8de3jn_response?.value?.data.map(item => {
        if (item.selected) {
          q_iaed61pve1.u_ioa0puvetx.push(item.id)
        }
      });
    },
    {deep: true})


  // 附件下载
  const ppmEnclosureInfoList = ref([])
  const taskId = ref(undefined)
  watch(() => dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.ppmEnclosureInfoList,
    () => { ppmEnclosureInfoList.value=dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.ppmEnclosureInfoList },
    {deep: true})

  watch(
    () => dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.taskId,
    () => {
      taskId.value = dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.taskId
    },
    { deep: true }
  )
  pageLoading.tip='正在下载请稍后...'
  // 图片预览

  const stateF = reactive({
    previewVisible: false,
    previewImage: '',
    previewFileUrl: '',
    isImagePreview: false
  })

  function previewAttachment(item) {
    // 检查附件类型
    if (item.type.startsWith('image')) {
      stateF.isImagePreview = true
      stateF.previewImage = item.url // 设置预览图片的URL
      stateF.previewVisible = true // 显示模态框
    } else {
      // stateF.isImagePreview = false;
      // // 如果是其他类型的文件，直接在模态框中显示
      // stateF.previewFileUrl = item.url; // 设置预览文件的URL
      message.info('目前仅支持图片预览')
    }
  }
  function handlerDownload({ url, name }) {
    pageLoading.loading=true
    function downBlob(blob) {
      const downloadElement = document.createElement('a')
      const href = window.URL.createObjectURL(blob) // 创建下载的链接
      downloadElement.href = href
      downloadElement.download = name // 下载后文件名
      document.body.appendChild(downloadElement)
      downloadElement.click() // 点击下载
      document.body.removeChild(downloadElement) // 下载完成移除元素
      window.URL.revokeObjectURL(href)
    }
    const data = new FormData()
    data.append('path', url)
    post('/solution-ppm/api/v2/built-in-system-ppm/delivery_task/downloadFile', data, {
      responseType: 'blob',
      headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
      }
    })
      .then(blob => {
        downBlob(blob)
      })
      .finally(() => {
        pageLoading.loading=false
      })
  }
  function downLoadTemplate() {
    pageLoading.loading=true
    post(`/solution-ppm/api/v2/built-in-system-ppm/delivery_task/download_template/${taskId.value}`, null, {
      responseType: 'arraybuffer'
    }).then(res => {
      downloadZip(res, '任务附件模板.zip')
    }).finally(()=>{
      pageLoading.loading=false
    })

  }
  function downloadZip(response, name) {
    const blob = new Blob([response], { type: 'application/zip;charset=utf-8' });
    const downloadElement = document.createElement('a');
    const href = window.URL.createObjectURL(blob);
    downloadElement.href = href;
    downloadElement.download = name; // 下载后文件名
    document.body.appendChild(downloadElement);
    downloadElement.click();
    document.body.removeChild(downloadElement);
    window.URL.revokeObjectURL(href);
    return href;
  }

  // sop选中复制
  watch(() => dataConnector_conn_xaeuhbh32o_response?.value?.data,
    () => {
      q_iaed61pve1.z_smqd6ov9cq = []
       dataConnector_conn_xaeuhbh32o_response?.value?.data.map(item=>{
        if(item.selected){
          q_iaed61pve1.z_smqd6ov9cq.push(item.id)
        }
      })
    },
    {deep: true})

   // 处理 未启动 的 rt_text 属性关联
   watch(() => dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.taskStatus,
   () => {
     let dataList = dataConnector_conn_rtucp29zln_response?.value?.data?.ppmTaskDto?.taskStatus
  //
     let text = document.querySelector('.vid_qp4k4d9gl3')
      if(dataList==='完成'){
          text.style.color = '#30BF78'
      }else if(dataList==='延期'){
          text.style.color = '#E02020'
      }else if(dataList==='进行中'){
          text.style.color = '#3875FF'
      }else if(dataList==='延期完成'){
          text.style.color = '#FF9846'
      }else if(dataList==='未启动'){
          text.style.color = '#8C8C8C'
      }
      //
   },
   {deep: true})
</script>
<style lang="less" scoped>
  .page_root {
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color:#F5F5F5;
  }
  .page_root :deep(.@{ant-prefix}-spin-nested-loading),
  .page_root :deep(.@{ant-prefix}-spin-container)
   {
      height: 100%;
  }
  .page_root :deep(.@{ant-prefix}-spin-container .@{ant-prefix}-table-wrapper)
   {
      display: flex;
      flex-flow: column nowrap;
      justify-content: flex-start;
  }
  .page_root :deep(.@{ant-prefix}-table)
   {
    flex: auto;
    overflow: auto;
  }
  .table-moreBtn_down {
    overflow: hidden; white-space: nowrap; text-overflow: ellipsis; width: 100px;
  }

  .table-moreBtn_menu :deep(.table-moreBtn_menu-item):hover {
    background: #ebf1ff;
  }

  /*  表格树结构样式处理，展开按钮层级增加*/
  :deep(.@{ant-prefix}-table-row-expand-icon) {
    z-index: 1;
  }
  /*  表格树结构 由于每个表格项采用自定义组件，使用绝对定位布局，开启树结构导致显示异常，暂时使用层级定位位置 */
  :deep(.@{ant-prefix}-table-row-level-1 .@{ant-prefix}-table-cell-with-append .cell-wrapper-left) {
    left: 15px !important;
    width: calc(100% - 15px);
  }
  :deep(.@{ant-prefix}-table-row-level-2 .@{ant-prefix}-table-cell-with-append .cell-wrapper-left) {
    left: 30px !important;
    width: calc(100% - 30px);
  }
  :deep(.@{ant-prefix}-table-row-level-3 .@{ant-prefix}-table-cell-with-append .cell-wrapper-left) {
    left: 45px !important;
    width: calc(100% - 45px);
  }
  :deep(.@{ant-prefix}-table-row-level-4 .@{ant-prefix}-table-cell-with-append .cell-wrapper-left) {
    left: 60px !important;
    width: calc(100% - 60px);
  }

  /* 穿梭框改变默认样式，为根据组件样式控制左右栏宽度。 */
  :deep(.@{ant-prefix}-transfer-list)
   {
      height: 100%;
      width: 50%;
  }
  .vid_a66h2jgxek{
      width:100%;
      height:750px;
      overflow-x:hidden;
      overflow-y:auto;
      display:block;
      background-color:#FFFFFF;
      box-shadow:0px 0px 0px 0px
  }
  .vid_oupkm1qcq4{
      width:100%;
      display:block;
      background-color:#FFFFFF
  }
  .vid_qda7xszz78{
      margin-right:16px;
      margin-bottom:16px;
      background-color:rgba(255, 255, 255, 1)
  }
  .vid_sfilmvv65x{
      height:16px;
      padding-left:8px;
      font-weight:800;
      font-size:16px;
      line-height:16px;
      border-left-style:solid;
      border-left-width:4px;
      border-left-color:#3875FF
  }
  .vid_qizt2lvsqc{
      display:flex;
      flex-direction:row;
      align-items:center;
      flex-wrap:undefined;
      margin-bottom:8px
  }
  .vid_hte17hl8ou{
      min-width:70px;
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_8ce19j1ydg{
      font-weight:600;
      color:rgba(38, 38, 38, 1)
  }
  .vid_swgipfa9ud{
      display:flex;
      flex-direction:row;
      align-items:flex-start;
      flex-wrap:undefined;
      margin-bottom:8px
  }
  .vid_fh3zdpf5jh{
      min-width:70px;
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_8o2vce0kw8{
      font-weight:600;
      color:rgba(38, 38, 38, 1)
  }
  .vid_5os1urclk2{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_io6lji4vq4{
      font-weight:600;
      color:rgba(38, 38, 38, 1)
  }
  .vid_9phccf43uc{
      min-width:70px;
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_b6yjigkl3q{
      font-weight:600;
      color:rgba(38, 38, 38, 1)
  }
  .vid_wj1z733z1h{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_qp4k4d9gl3{
      font-weight:600;
      color:rgba(38, 38, 38, 1)
  }
  .vid_0xmbkzz7lf{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_sncshfitvt{
      font-weight:600;
      color:rgba(38, 38, 38, 1)
  }
  .vid_t5b3zh1n4x{
      display:flex;
      flex-direction:row;
      align-items:flex-start;
      flex-wrap:undefined;
      margin-bottom:8px
  }
  .vid_sj8nxor7sy{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_hp95j8xrxn{
      font-weight:600;
      color:rgba(38, 38, 38, 1)
  }
  .vid_2rnqzoay9v{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_p0hyrkkmw7{
      font-weight:600;
      color:rgba(38, 38, 38, 1)
  }
  .vid_o3idmba92f{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_urjvtoj54u{
      font-weight:600;
      color:rgba(38, 38, 38, 1)
  }
  .vid_l1wbm8mstf{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_sv3wlynl7n{
      font-weight:600;
      color:rgba(38, 38, 38, 1)
  }
  .vid_d4ediuy0j8{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_pazokhx20e{
      font-weight:600;
      color:rgba(38, 38, 38, 1)
  }
  .vid_id98z1hjm5{
      display:flex;
      flex-direction:row;
      align-items:flex-start;
      flex-wrap:undefined;
      margin-bottom:16px;
      padding-bottom:16px;
      border-bottom-style:solid;
      border-bottom-width:1px;
      border-bottom-color:#D9D9D9
  }
  .vid_9reh8war19{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_whsekrxwsy{
      font-weight:600;
      color:rgba(38, 38, 38, 1)
  }
  .vid_3qjk3jsjdp{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_vonhq9nbvm{
      font-weight:600;
      color:rgba(38, 38, 38, 1)
  }
  .vid_546l4nr3qa{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_gz4ovawl99{
      font-weight:600;
      color:rgba(38, 38, 38, 1)
  }
  .vid_2anx5uk0fb{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_ss7wuj4d4s{
      font-weight:600;
      color:rgba(38, 38, 38, 1)
  }
  .vid_pl7jx4wdr4{
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1)
  }
  .vid_4yzl296aw0{
      font-weight:600;
      color:rgba(38, 38, 38, 1)
  }
  .vid_5amjfig1pl{
      width:100%;
      box-shadow:0px 0px 0px 0px
  }
  .vid_b1hp2z2pjq{
      display:block;
      background-color:#FFFFFF;
      border-right-style:solid;
      border-right-width:1px;
      border-right-color:#D9D9D9
  }
  .vid_6k45k29qc4{
      width:100%;
      height:40px;
      display:flex;
      flex-direction:row;
      align-items:center;
      flex-wrap:undefined;
      margin-bottom:8px;
      background-color:#FFFFFF
  }
  .vid_kgvx07500o{
      height:16px;
      padding-left:8px;
      font-weight:600;
      font-size:16px;
      line-height:16px;
      border-left-style:solid;
      border-left-width:4px;
      border-left-color:#3875FF
  }
  .vid_anayzmd7k5{
      display:block
  }
  .vid_plvu6gqeyc{
      box-shadow:0px 0px 0px 0px
  }
  .vid_ehoh8pt2lb{
      display:block;
      border-right-style:solid;
      border-right-width:1px;
      border-right-color:#EBEBEB
  }
  .vid_6rwtheqpnk{
      display:block;
      margin-bottom:0px
  }
  .vid_ev78jrivs2{
      height:370px;
      overflow-y:auto;
      margin-right:16px;
      box-shadow:0px 0px 0px 0px
  }
  .vid_6o7ft9gcxr :deep(span) {
        text-decoration: undefined;
        font-size: undefined;
        color: undefined;
      }
  .vid_6o7ft9gcxr{
      display:flex;
      flex-direction:column;
      flex-wrap:undefined
  }
  .vid_asrcjumn8g{
      display:flex;
      align-items:flex-start;
      justify-content:flex-start;
      flex-wrap:undefined;
      box-shadow:0px 0px 0px 0px
  }
  .vid_dgd23jscdw{
      color:rgba(56, 117, 255, 1)
  }
  .vid_shrfl8uqye{
      margin-bottom:8px;
      font-weight:500;
      color:rgba(89, 89, 89, 1);
      font-size:15px
  }
  .vid_mq9f1g648m{
      display:flex;
      flex-direction:column;
      flex-wrap:undefined
  }
  .vid_vutt5on3s9{
      display:block;
      margin-bottom:0px
  }
  .vid_jgijrn8hb5{
      width:100%;
      height:370px;
      overflow-y:auto;
      box-shadow:0px 0px 0px 0px
  }
  .vid_h3noefhyqx :deep(span) {
        text-decoration: undefined;
        font-size: undefined;
        color: undefined;
      }
  .vid_h3noefhyqx{
      display:flex;
      flex-direction:column;
      flex-wrap:undefined;
      box-shadow:0px 0px 0px 0px
  }
  .vid_30pa4jvpiw{
      height:100%;
      display:flex;
      align-items:flex-start;
      flex-wrap:undefined
  }
  .vid_t13sdk1z88{
      color:rgba(56, 117, 255, 1)
  }
  .vid_jsqzlgxfsi{
      margin-bottom:8px;
      font-weight:500;
      color:rgba(89, 89, 89, 1);
      font-size:15px
  }
  .vid_z5ekmc27yn{
      display:block;
      background-color:#FFFFFF
  }
  .vid_kek9mcs93b{
      display:block;
      background-color:#FFFFFF
  }
  .vid_9zmzkacds0{
      height:40px;
      display:flex;
      flex-direction:row;
      align-items:center;
      flex-wrap:undefined;
      margin-bottom:8px;
      box-shadow:0px 0px 0px 0px
  }
  .vid_fty1g7gff7{
      height:16px;
      padding-left:8px;
      font-weight:600;
      font-size:16px;
      line-height:16px;
      border-left-style:solid;
      border-left-width:4px;
      border-left-color:#3875FF
  }
  .vid_4vqhgo7ygs{
      width:100%;
      display:flex;
      justify-content:flex-end;
      flex-wrap:undefined;
      background-color:#FFFFFF
  }
  .vid_jr9d1p1jg7{
      background-color:#3875FF;
      border-style:solid;
      border-width:1px;
      border-color:#3875FF
  }
  .vid_qa53gc55by{
      height:390px;
      box-shadow:0px 0px 0px 0px
  }

  :deep(.@{ant-prefix}-table-empty .@{ant-prefix}-table-tbody tr > td) {
   padding: 0;
  }
    /deep/.ant3-checkbox-group-item + .ant3-checkbox-group-item span{
      color:#595959 !important;
    }
    /deep/.ant3-checkbox-wrapper.ant3-checkbox-wrapper-disabled span{
      color:#595959 !important;
    }
  .file-item {
    display: flex;
    width: 100%;
  }
  .file-name {
    width: 75%;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
  }
  .file-time,
  .file-preview,
  .file-download {
    width: 10%;
    text-align: center;
    cursor: pointer;
  }
  .file-preview,
  .file-download {
    color: #3875ff;
  }
  .vid_qa53gc55by{
    height:197px;
    box-shadow:0px 0px 0px 0px;
    display: flex;
    flex-direction: column;
  }
  .file-main{
    width: 100%;
    overflow-y: scroll;
  }
</style>